package com.zenithmind.chat.pojo.vo;

import com.zenithmind.chat.enums.MemberRole;
import com.zenithmind.chat.enums.MemberStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 群组成员VO
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
@Schema(description = "群组成员VO")
public class ChatGroupMemberVO {

    @Schema(description = "成员ID")
    private String id;

    @Schema(description = "群组ID")
    private String groupId;

    @Schema(description = "用户ID")
    private String userId;

    @Schema(description = "用户名称")
    private String userName;

    @Schema(description = "用户头像")
    private String userAvatar;

    @Schema(description = "群昵称")
    private String nickname;

    @Schema(description = "成员角色")
    private MemberRole role;

    @Schema(description = "成员状态")
    private MemberStatus status;

    @Schema(description = "是否禁言")
    private Boolean isMuted;

    @Schema(description = "禁言到期时间")
    private LocalDateTime muteEndTime;

    @Schema(description = "加入时间")
    private LocalDateTime joinTime;

    @Schema(description = "最后活跃时间")
    private LocalDateTime lastActiveTime;

    @Schema(description = "邀请人ID")
    private String inviterId;

    @Schema(description = "邀请人姓名")
    private String inviterName;

    @Schema(description = "退出原因")
    private String exitReason;

    @Schema(description = "退出时间")
    private LocalDateTime exitTime;

    @Schema(description = "扩展信息")
    private String extraInfo;

    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    @Schema(description = "更新时间")
    private LocalDateTime updateTime;
}
